2 您所在的位置:网站首页 GLib库入门与实践 pdf下载 2

2

2024-06-27 03:32| 来源: 网络整理| 查看: 265

类型转换宏提供了整型与指针类型的互相转换功能,非常方便,也经常会用到。

类型转换宏说明 #define GINT_TO_POINTER() // 整型转换为指针 #define GPOINTER_TO_INT() // 指针转换为整型 #define GUINT_TO_POINTER() // 无符号整型转换为指针 #define GPOINTER_TO_UINT() // 指针转换为无符号整型 #define GSIZE_TO_POINTER() // gsize类型转换为指针 #define GPOINTER_TO_SIZE() // 指针转换为gsize类型 类型转换宏用法

GLib库很多函数的用户数据类型都是pointer类型,这样做的目的是为了让用户方便地扩展自己定义的数据类型,但如果我们只需传递一个整数(这种情况还挺多),则只需要一个GINT_TO_POINTER宏将整数转换成指针就可以了。 例如,异步队列入队列函数的定义为: void g_async_queue_push (GAsyncQueue *queue, gpointer data) 第二个参数为gpointer类型,在使用时只需要这样传入整数:

g_async_queue_push(queue, GINT_TO_POINTER (1));

异步队列出队列函数的定义为: gpointer g_async_queue_pop (GAsyncQueue *queue) 返回值是一个gpointer类型,可以这样将刚才传入的值取出来:

gint value = 0; gpointer item = NULL; item = g_async_queue_pop (q); value = GPOINTER_TO_INT (item)

对于guint和gsize,用法和gint一样。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有